package com.kitbox.hl.meshow.common.utils.upload;

import java.io.IOException;
import java.io.InputStream;

/**
 * @Auther: honglei
 * @Date: 2019/8/22 17:07
 * @Description:  文件上传工具抽象
 */
public interface UploadUtil {

    /**
     * 上传文件，返回文件的路径，可以直接使用http访问
     *
     * @param content
     *            文件内容
     * @param fileName
     *            文件名称
     * @param type
     *            用于本地上传管理类型
     * @return
     * @throws IOException
     * @throws Exception
     */
    String upload(byte[] content, String fileName, String type) throws IOException, Exception;

    /**
     * 上传文件
     *
     * @param content
     *            文件内容
     * @param fileName
     *            文件名称
     * @return
     * @throws IOException
     * @throws Exception
     */
    String upload(byte[] content, String fileName) throws IOException, Exception;

    /**
     * 将文件下载
     *
     * @param fileName
     *            文件名称
     * @return
     * @throws IOException
     * @throws Exception
     */
    InputStream download(String fileName) throws IOException, Exception;

    /**
     * 删除文件
     *
     * @param fileName
     *            文件名称
     * @throws Exception
     * @throws IOException
     */
    void delete(String fileName) throws IOException, Exception;

    /**
     * 获取文件长度
     *
     * @param fileName
     * @throws IOException
     * @throws Exception
     */
    long size(String fileName) throws IOException, Exception;
}
